#ifndef _H_I_PROTOCOL_WRAPPER_H_
#define _H_I_PROTOCOL_WRAPPER_H_

#include "../typedefine.h"
#include "SProtocolEndPoint.h"

namespace QWER
{
	QCLASS IPtc;
	QCLASS IRpcArg;
	QCLASS IRpcRet;

	QDLL_EXPORT QINTERFACE IProtocolWrapper
	{
	public:
#ifndef _USING_CLI
		virtual ~IProtocolWrapper(){}
#endif
		virtual UINT16 GetProtocolID() QCONST_FUNC = 0;
		virtual UINT64 GetRpcUID() QCONST_FUNC = 0;
		virtual BOOLN IsRepliedRpc() QCONST_FUNC = 0;
		virtual BOOLN AssignTo(PTR_OR_REF(IPtc) roProtocol) QCONST_FUNC = 0;
		virtual BOOLN AssignTo(PTR_OR_REF(IRpcArg) roRpcArg) QCONST_FUNC = 0;
		virtual BOOLN AssignTo(PTR_OR_REF(IRpcRet) roRpcRet) QCONST_FUNC = 0;
	};
}

#endif
